<?php

class HomeController extends BaseController
{

    public function init()
    {
        $this->_helper->layout->disableLayout();
        $this->checkAjaxGetPost();
    }

    public function indexAction()
    {
        $form = new Form_ConsultarProcesso();

        $this->view->form = $form;
    }

    public function consultarProcessoAction()
    {
        $this->ajaxNoRender();
        if ($this->isPostAjax()) {
            $form = new Form_ConsultarProcesso();
            if ($form->isValid($this->getRequest()->getPost())) {
                $dados = $this->_filtrarDados();
                
                echo json_encode($dados);
            } else {
                echo json_encode(array('error' => 'true'));
            }
        } else {
            $this->pageNoFound();
        }
    }

    private function _filtrarDados()
    {
        $dados = array();
        $dados['ok'] = 'false';
        $dados['param1'] = str_replace(array('.', '-', '/'), '', $this->getPostTrimTags('cpf_cnpj'));
        $dados['param2'] = str_replace(array('/'), '', $this->getPostTrimTags('numero_processo'));

        if (!(strlen($dados['param1']) == 11 || strlen($dados['param1']) == 14))
            return $dados;

        if (is_numeric($dados['param1']) && $dados['param2'])
            $dados['ok'] = 'true';

        if (strlen($dados['param2']) < 17)
            $dados['action'] = 'resultado-spu-antigo';
        else
            $dados['action'] = 'resultado-spu-novo';

        return $dados;
    }

    private function _desfiltrarDados()
    {
        $dados = array();
        $p1 = $this->getPostTrimTags('param1');
        $p2 = $this->getPostTrimTags('param2');
        if (strlen($p1) == 11) {
            $c = str_split($p1, 3);
            $dados['cpf'] = "$c[0].$c[1].$c[2]-$c[3]";
        } else {
            $c = str_split($p1);
            $dados['cpf'] = "$c[0]$c[1].$c[2]$c[3]$c[4].$c[5]$c[6]$c[7]/$c[8]$c[9]$c[10]$c[11]-$c[12]$c[13]";
        }

        $dados['numero'] = substr($p2, 0, strlen($p2) - 4) . '/' . substr($p2, -4);

        return $dados;
    }

    public function resultadoSpuNovoAction()
    {
        $processoService = new Spu_Service_Processo($this->getTicket());
        $data = $this->_desfiltrarDados();
        $processo = $processoService->consultar($data);
        $id = $processo[0]->id;

        if ($id)
            $this->view->processo = $processoService->getProcesso($id);
    }

    public function resultadoSpuAntigoAction()
    {
        $p1 = $this->getPostTrimTags('param1');
        $p2 = $this->getPostTrimTags('param2');
        $p2 = substr($p2, 0, strlen($p2) - 4) . '_' . substr($p2, -4);

        $url = Zend_Registry::get('totemantigo.url') . "/index.php/processo/detalhes/$p2/$p1";
        $html = file_get_contents($url);
        preg_match('#\<div id="wrapper"\>(.+?)\<\/div\>#s', $html, $html);
        $this->view->htmlTotemAntigo = $html[0];
    }

}

